home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Developer Toolbox 6.1
/
SGI Developer Toolbox 6.1 - Disc 4.iso
/
public
/
tarmail
/
tarmail.kit
< prev
next >
Wrap
Text File
|
1994-08-01
|
15KB
|
358 lines
This file contains tarmail -- a utility for sending files through e-mail.
This is a convenient way to send files and/or entire directories of files.
The files can be either text or binaries.
To use tarmail, it must be installed on both the sending and receiving
machines. To install tarmail on your local machine, use this file, or
simply execute the "install.tarmail" script. To give tarmail to someone
else so that they may install it, just send them this entire file, without
modification.
Included, you'll find "atob.c" and a tarmail-format file which contains:
atob.c
btoa.c
tarmail
untarmail
viewtarmail.
All of these files are public domain (but please don't remove the credits).
These will let you atob/btoa and tarmail/untarmail/viewtarmail.
When received, do the following to install tarmail.
1. Save this entire message in a file, call it (say) "tarmail.kit".
2. Extract the text between the pair of ============= bars into the
file "atob.c", and compile it with the following command:
cc atob.c -o atob
3. Type the command:
cat tarmail.kit | atob | uncompress | tar xovf -
and the rest of the files will appear. It is NOT necessary to edit
the "tarmail.kit" file to remove headers, as "atob" will automatically
find the beginning of the btoa'd data.
4. Compile the "btoa.c" file with the following command:
cc btoa.c -o btoa
5. Copy the following files into your /usr/local/bin directory
(or to some other directory in your path):
atob
btoa
tarmail
untarmail
viewtarmail.
6. To send files, use:
tarmail [-s subject] person files ...
Will send the listed files and/or directories to the
specified person, with an optional subject heading.
7. To read or preview files, save the received message into a file,
and use:
untarmail file, or
untarmail -
Will extract the enclosed files/directories from a file
containing the received mail message. Note that the headers
need not be removed from the mail message -- untarmail
will automatically extract the proper data. As with tar,
the files/directories will be placed in the current working
directory, unless the names are absolute paths. The "-"
option can be used to read a list from standard input
(typically used with a pipe).
viewtarmail file, or
viewtarmail -
Will print a listing of the enclosed files/directories
from a file containing the received mail message. The
"-" option can be used to read a list from standard input.
NOTE: You may need to edit the "tarmail" script a bit to get it to
work properly with your local mailer -- as written, it assumes
a Berkeley "Mail" that supports the "-s subject" option and
the "~:" subcommand (so you can suppress adding tarmail'd
files to your mail filecopy). If all else fails, just use
this for "tarmail":
#!/bin/sh
who="$1"; shift
tar cvf - $* | compress | btoa | mail $who
============ atob.c ==========================================================
/* atob: version 4.0
* stream filter to change printable ascii from "btoa" back into 8 bit bytes
* if bad chars, or Csums do not match: exit(1) [and NO output]
*
* Paul Rutter Joe Orost
* philabs!per petsd!joe
*
* 900308 rpw3 Modified for slightly more user-friendly usage message
*/
#include <stdio.h>
#define reg register
#define streq(s0, s1) strcmp(s0, s1) == 0
#define times85(x) ((((((x<<2)+x)<<2)+x)<<2)+x)
long int Ceor = 0;
long int Csum = 0;
long int Crot = 0;
long int word = 0;
long int bcount = 0;
fatal() {
fprintf(stderr, "bad format or Csum to atob\n");
exit(1);
}
#define DE(c) ((c) - '!')
decode(c)
reg c;
{
if (c == 'z') {
if (bcount != 0) {
fatal();
} else {
byteout(0);
byteout(0);
byteout(0);
byteout(0);
}
} else if ((c >= '!') && (c < ('!' + 85))) {
if (bcount == 0) {
word = DE(c);
++bcount;
} else if (bcount < 4) {
word = times85(word);
word += DE(c);
++bcount;
} else {
word = times85(word) + DE(c);
byteout((int)((word >> 24) & 255));
byteout((int)((word >> 16) & 255));
byteout((int)((word >> 8) & 255));
byteout((int)(word & 255));
word = 0;
bcount = 0;
}
} else {
fatal();
}
}
FILE *tmp_file;
byteout(c)
reg c;
{
Ceor ^= c;
Csum += c;
Csum += 1;
if ((Crot & 0x80000000)) {
Crot <<= 1;
Crot += 1;
} else {
Crot <<= 1;
}
Crot += c;
putc(c, tmp_file);
}
main(argc, argv)
char **argv;
{
reg c;
reg long int i;
char tmp_name[100];
char buf[100];
long int n1, n2, oeor, osum, orot;
if (argc != 1) {
fprintf(stderr,"%s: no args allowed, please use pipes or re-direction\n", argv[0]);
exit(2);
}
sprintf(tmp_name, "/usr/tmp/atob.%x", getpid());
tmp_file = fopen(tmp_name, "w+");
if (tmp_file == NULL) {
fatal();
}
unlink(tmp_name); /* Make file disappear */
/*search for header line*/
for (;;) {
if (fgets(buf, sizeof buf, stdin) == NULL) {
fatal();
}
if (streq(buf, "xbtoa Begin\n")) {
break;
}
}
while ((c = getchar()) != EOF) {
if (c == '\n') {
continue;
} else if (c == 'x') {
break;
} else {
decode(c);
}
}
if(scanf("btoa End N %ld %lx E %lx S %lx R %lx\n",
&n1, &n2, &oeor, &osum, &orot) != 5) {
fatal();
}
if ((n1 != n2) || (oeor != Ceor) || (osum != Csum) || (orot != Crot)) {
fatal();
} else {
/*copy OK tmp file to stdout*/;
fseek(tmp_file, 0L, 0);
for (i = n1; --i >= 0;) {
putchar(getc(tmp_file));
}
}
exit(0);
}
============ tarmail.TZB =====================================================
xbtoa Begin
+.\L%ke%Mf@LRd>#SS[maKVAULCb\&6jTN]%2q&g!2s#[7LU+P.oqTP,G[km2.54\#_GOd)Du>9KJ>
jT`>LHi:>EstVpCt?BA==r[&?He8<YN/b-\.sVbLNs!"j1C%M3g+aI/7SNLQ4d?ml"0FUfEPA\teT@
3uF&3a+fT">L*T(cQ*MJ:JjlN>joe`3@W.B$Qc#C"URRZW;_rJRLrs&//[")A%A\ig?6jcK%*,kDYt
#`m!KtAE_b'ao]L#3?X(#WRGGh#Vp<`\9[,F9u+>AbM_WD,";nN>OJA3o#,Yk3cL[7)*PPTPV@74J<
9=AY+,V$Pe>E@A?jhQHdT>44=:7OXl/*cR6r<SRdnnL<m1Ss-B-2i^i@C'i&1$/)5X0,7VZPJ#/V?r
Ui?SWFKgl4#]75O<ul?qeUeZeQ/Mob(4s>1(jTOl`Z0&m=N5#-.%n?]IZ;05*G"BQK38Joi;so]a>c
MHD7Q>V>%`A9A/]&o,p\V%l"(W6EM+uj%'@c_>X_SOd0:Rk@enrJ4nJ`+=>N9XUg.W@Yp'Z8TR]N>$
(t\hSTsY>K+'310W1LiqO%DXIEj8d)dXhY=_qY/BI4-L."E^PR/IcSChl0Pl(j2?3lGL!Be!hkQ$RV
oCT305BrR;UnO=ObMQ21E!JS>o$HMNg(0c/tAqlRmj=#d'XZ;+S>HdkbR=hfm-<G(bM8=lb,,>ca7D
]XL>bld1=[nO"&Q&Z<@iT,o\KJ6Z_?hBUOFiEO\sakSa6ea0?'4DU;/%/7$UU9IlJX?$qMN3E$=^LP
X(NS<Rd7+(d0eO.ej9d3+!?fa7Y_+N>`fkr2>S:"0N<GJa!&2i#K\<b$o2';Z[Amu.?@a)bS>8iF2f
0bFg/VER*"d3-CE0K(a/=pn'E2Y!!8Z>7,@B)#:KFaX:A$Snu6Z*$A,e[i[iLb.p0KhfGJDJERbD#W
\b.qT*teQ?IR<aRrQm4nk!p^D'mosMHphIB)dQCcQ!bF2lcn`l/it)U7c_Z?]Q/9a.L111('GG?t\@
\p],mSE._Q*$nt+%Gig3RbkYV;9?qeG+N.[*EMo_K[n&0]DJ/.)cRq6g\<!filFk793ZXgdSU1gGA)
=\nEYfe^R:u&XG0a>n,dFJ]cJ39G$5em.'1J!Oa-U/?2-?X],X4&qp6Lj%)#<S\7&-u3@4)!M_j''J
'gQE6^e?JMg!;k$)q1>a%lid6"T'E$`Pi$\8`KgQ`Pt0h*3aVG6_%I6fYIu6:j`&Vi!09bOm(/#%-2
0JqV]^a\!3RqjR\@<:_3gkS7)i.l/<NH:p5c+V2&SYJIq41^P^g)KhAWm#Ze@31sG<BYaOGdgn9rgC
uHTmke\'91RU:kiJ[XHj0#=o.6#2<2/\LACW>t73FZ``TRu(89Z'4>,->:]Mjm8]d&XqZMFUhnQ3^)
:LTBcr.R(5!XUoW1"gnOEK.5$!3!P-p]Z2o?6;%[tKU+@Fbq%6U5nJHXLFn1!GM-.;T>\4>3>@Vd^X
=;Bh,LHlE(CHlR,JFIjan-'6'WS6$Zsf^#$eQ0Msf&PR2Y]=2kWF&>qFPI<_t@One%<Kr0NhA:^&1"
6'0s('uaih&QhKC%;WI#qf[8&*@*m"+D=(YetA@ChM+U1JAZ_qW.Gjd6n05B@9nru)`4?Z=At/V6$L
j%fUuUW4$Y0*ph0kCc2h?cbYfAOcm[A!+f#VUQ=#XS0QNU\UZn:Npai9uKCNqRAZ4$KbtorR4Q[)]!
.b^JkEf.K&9D;Gb<E8!1Ds3R%dFp*^\hXiARa&T+95paSmV\\*Xl`_42J9.AjIYf`GTRl6Q$B32P9L
OX?sf,=co`626`?mA\CeUjAgr=d1h:][*ffZnghaG"p@@3&I=m,JeG:223,WX@N3Jpa\IDmP*H)\;o
o*bM8TO7C^k(>BKA0eX0d(%/Z=[38Eb2W/aAj?;ti7O2eLT6EBF^Qps:\ChNh$Bd4K96n-/mpZ<;#U
DJq7Sgsp03HgB1Q#[](s=2Ei^:KW3R^;Q=Vc@nb</#_+Ed%N55':a\h%1JVshVD2=?\uU9!n5\O_up
Nr0\sonY%gs^dP.-;4%W.^)G?JIJ:(6X=6$Bn)Q[\=X'U4T37g%=r4;/HISoE:f-]I\au-q*9oE:k3
o.HglTfm3S:CXP;8Ek\"bm11@MR'ga$R5?PDq+!/urL,7[CBPXU&UtBY$0\f!IqBXU/=O)qLJ"[2+F
uCbN5tT@k!A\HTfeHcs1]mOu(R*c>tgF^.ThQak6s;[8@%Z.QL$H\o(2Fl..D&7g!sE9OH(^Dj9D^0
nV84YQ],WF#:iah82D>iXVL"8^aG;*PLW6(gR/8ghP((bnTP5%9\;P[l"ZUO`kb!0WY\,UPIL!N'Kp
".`QjeZ]7.:l7U*UW!#[\B_LbGKgeK7f"T;fh,>[6A)LA#H)=aZZi";R_,A/1LfPVlYMcQgtXY=;D$
+$dSLrcIH`aBP)D\M6Q7bujUEOGfc5UB=?<)U/UCQP?cW4>dr=DA;Q\,Kf75<tkbgn/nOo$k-V:\lj
UH#CN%#QBWnbf`"tbY>WDL!?EJnK`IJF8grGig:_$N9A!>Cu*i*+N^*!LA1pq-1YDS60]$:@?N&t1D
-b':rb*+F.'ojVf"<:]$B;pMu>E.[AF5[YIN"(,p:n;'`,Ul/sZ$06s]S9HA=F7G500%9BeVZtsKkA
+hR:b*@CB.>%6:3O(p*Vb;#4E`Un*RFnDW3XH,DO1l^m"6CcT]ZYJOFe./i.N=[`SF5)MH77HQ)a/I
J_l,K5ggbl^"f;;BX#!^qJleTfSV/el&_`@L7ZD/h+2X,5t._+mak"No@ae=fG2;kFkM3r-_S?`)@b
4R/9J*Va7qn(;]G@6hVA]ON*^TcR'$!r8tPApV9j(JZ\6.H!hTl?m_\E,R,.6-!<I]J"!@UV-ijN=:
g4e9?3j,Y67'd9_/h5a%u"[b,s"n\*nR.!^dq!RE[*T-1d'2$58#5Unh!]O77jd19d0i!!\X9_"BYX
-73Db-5^;O7"#t6JUp;CU"rjT5JY"&N,=j7+LdA>`7\2==D0%k%1+F\c.Fus-1!"rfK.?@H,RV%.7G
n=@;CA"k<TrF!6h;o;+F>M+0-F(UpX;OGeNa'i1WVF=:fN,jPX&6g7jq2#7KW`(1dMbmAg1)=H?)>"
;*nD&6>cC!AuJ!<`+!I@Khdnc?"62s1GaHs#BWL@#kNW]2?Ojd2_h'd@T.p/F"ntQ0f?Iq-q$7P3&6
]XKMt9j'A#*<GVIU12&:j60lqI)_M3;H1&%t%1Lu,I@kjf'4*RV[,ssB\1_i@]HlOpIb'+e2Oa@U:#
6OQ:ScL?HE<\mq)QPVjEc[+Mno1Wc4a*22l@K)-i]1tP+4E1aebCu$2AI^^<&V^QWSra1Ko@-n&^/6
TB$rWa(l]q_NU3$lfVfnHpfAj%M'MVE_/kAbcnF\:Nn!9Q:idUO1ID0i&q*[[AcdsK,)uT3OSu[NoX
H[MfJiW9NXTW]cngbZ`Ae(T0DoLG%_3K4'9S50OmNuC]2Odr=d!7cO=267pkXnHfo1o%-?-8R+Baaj
W&JX<?o#T^kYa)eFB'e[(P(_*IcuAb'.RVB";GO#(oW!('pK.S<c/J+(5%hZK8P^<,<B@063K\L<(&
R06q[Z::Gam%JqIs67iTu3?hmo1&nSOo8AUH[/?h[)oQZI>#*P3iDbs#9E(QJ90u;I5T<rl@1eMIY8
uL_SS@+]coL`Rk@'dd\EsZ>?F]_#]H&bHJ/b9^6fR!oo<QS2E0@XB-o3bks>"Ub-6Wk".@?aab<)KJ
.J!cJ8onjO7RXK<7/;?r-Oa))s(N]Wn?f?(?7i8Zh#',5=HGQ,j[@@_<)9.JP^&hfnP*n(k=Na!52^
V\lULQE@@m3prO6Hjfe/BL/SuK,01K.\q8Nn=APs'd%<,%Wh#`+<s5$WA]?Kjs2&=-%(6tE(p9#O>6
.7I'tQBnHgCj@^$";l0pI(WLR%j;QE!#(g`&Kh*hT%7U'nI[%_&JB0f1E[>h:ho$("!6E9(Aaa;0l+
-c'Xe4@2L;,XR\L3U"bHCO:B1Pt0EjUY!^^i-#quG*L)9gL+F3H+YV?B.cm3C((qNQK$aLnT8#.NjG
^$E&8!!jIZ52nO!b+E0-X_*)0H4Jo#(&cD6`Nq"6$mAjU!-S[K>fPh5QWY_)1J7Z,1$C4:b<!HVJL!
>4clQs+9IN\#O5_%FKh^'qP]O^,*gQ>RKN[;J>@T#"+4Jr$*[KEO;fR?Iq<SD4iD`h!N<W?VJY#jHa
.gT(JSu/!jl-QT/ms`O[,,a,%CU+/)mFO\u.X*W224m8@faZ+`7<82\,KqQ"2'Y6NT8W(6bFHIp"4h
-N_L>);aKp,9fJbKbcHG8UBntEDQnQYp/,K+]REeQU`KHH@=M0FkL1^R%tPIMH5r('sfA7-ig9Al3B
?MN2@I]Y0o13g1V*k(Nr%FHbcCSi1iOu"asbslB8&1+;qg,H"b#<=uI7RFW=YZ!"$GFE2jqYR\thmV
NN+)^RBguOW,JU9ic9SU?<E(kH\]>![=9;7=(b$RNh4NUil1&;$n+<C)]W_V.>[a7EVH60a1o&V@9j
bAI8NP.O-HZW$cPiE[hm'.^+#AWPQ`TDW%FC.]?PZX<`n+OBS`(l_kYcKY2'!dAj0YbGh'?YX@#lV$
aXE.^,fiH?I$'VW=cGYnaNY6aKss,TBB![&]Il!;Ur>HE*p^lDWa#XEriCb6h5cpT23/Z^tTCP_?/E
VlfO4Xc25@JSB,`MPN>3Qfjg?($BK$3_=ghIIS5Ro_K>p,ZX[*H&^L\$Lk5R].O.XYb"]aW04B8bHM
HaYnA"O'q6fuJ?^#>E*q%u[_Z11"p,uAZ6h*3.8'_XgTpV^Z_<i$1ckq#.j?sBP[Wkn3m)4TWhH)oB
cS+dT-cK3_.kknUA\Mp)-R+sJ>"`K3\G`n2_(RYH36%i^_C%i(<dKBqkHG<UdFPT>Df4HUnjYbV+g3
^>FKe7$`7tfV@GqiAt#P;ll'b<,)nMb;;)(PDuuc-!-bFZR9D$Hi2Kf:,AWruF/o@a_RH<*[o]ggor
B+\A?/>h+=H-dJK(L=+N:i/\TBpDKB3tsqQ\H=YoLA"[P:Ar]<HP,YRfK`)GICOWrUSFX'OM]Pl%MI
/$,.SXH/^LSnfh#3]EPh_tdK<Vos(Z]<0lS]&9S'0-\"4B<LG:)XH+DPf110b\V,mYJH.#^Il/VB"Z
4>^*g.tDU9QO]3!;d!XaiRA&-)%4L*LbYp>F9ABYm<@E'B.^>iG'q..4JTsBAVW-"]H0?^g\CI9uV+
S,C\G+]t%d(=+5_690>Wj]Y^$DJd1TdMVu.7(a!EM>?&!sr3E)2]"89[10R_)"-glMSrs*7(n&_-.2
Q+Y9uolD+r2Zt5?+,b-)R].QmKG[6cT<'-sYS$bA+WB]196L5UC:rKFT.7jB9ah,JD!c647c$ECp;L
Hkk//$96#18s_=o>d69ZNB4a'Xe)$-ZU`]Wo!5^$1[u]X=tc!6]72bAkbF/+'BLOiNh.WLKB[apQ4`
433dmaJO<dLcfRTlP?SV#)iu&O%c^`43?b;DRo)9R!cmERN%_)]_AF-Ac^'PMPd-gYQK6p"m`f,bKA
60b1!uOen_PD>Kbc*`Z>N%+U\>rlcWU]^?N8Za.0fa4;c7hZd091Nr@Ul*SHT=fp#dqQ@7GRS_9IFf
a0BcV5p6@,9p)58;*4I\-+A"Ea$K"+N^pjbT];n&M6KFT"%rD3#$oO#WUt`K^*T2^<0MN8;R=G0OH\
GTGV,9;M0LqS!Z"c)`C#R<AQ/cS(/b>#$0QK1YoZq1>.*3+u*KSoeT-[?Uncj7cQ-oA"W-T3WFoj\!
`K]_q]:MN4Q\`K_'fAh3RNs2D(%ub\/qr'01dq4cJtuoo2!+SWrr@=9!\-OHVW%!g&]-=4ln%b7ct1
,<DW!4K*=`aCF$BIZLHo41<&c`tR:b*TGo]!jk<W%b0Glak[^B4O.G!*_tX;R#!,@LnVLk44Ap]k%:
tg53@J]l8**3"@)I`1A'Tp$4;J1#Qjum5S\j(I<[1FKSK?ZKc'H9@46jVUJYs.j]/HM=q52lSV@u'L
2f1W(Xt]#1c%E86[2X!K5oWQd$9%O6`W%3@YmNaM4b2P0P<t63+tam!pJ:t->4)_@t[63e`^aI&Sam
J7ckWe@n3nW8%eAbI.W_T'UKS6g=M0P_fD*&j@IW18aT,AQF%H\WRQY?DP:#6MTM7'p6\M68mMEi[9
]2<DG-jt9CnBBg$;:P!)16t9ZD`Zb1'#-1m$oI9up4,rj>27/cseW9j?7'dlq1mF\].%gaqS_IN`A]
6r2AHMndJ3*W8bc,#DtS)qBdAo=e&ij\Vlf([k<-ebNMfPu4`-0HF_n+15#k78dNKn0s&6DST01<)2
GE=6/f02YDH1O]*CA;q\4B6+*+Ljd@5l=553rbSj4`<`Q#B<N0[Z>IBn8<8:n^@BX6C(m\3<7:L*^o
5QWheO/mg5DjK&@]m7'"1En9jp$MS^>-8$hMGAqL1B83=dqi3SHZeq(0X-r>"b1GW3tlieRZDuAYUm
=/7rH"N+IALAmFI@a2L8U2J-`%B!`0EC%g]5o3>o-j$GC3F&lptG)H:;B=RIOi\g"PG3ss+-AG"GK9
U'>V&T$V!qjOlRZ_%M.0h9J?dg'[7uo70*M8*rS#"/6p"Anl"^qMj@7!?QH$*P/V-u[9@7Oh_+'.us
!V?H%LdSAg7:5UVD\t,C@mSZ;2>1-K+.c@@p#V#85_er#7V&9:A7!#]9#bDc1\Q,J;`j6!-u`b-[J!
fo>[@'s?oJ")mq$+Np1W#Bc.-@Z%mFpOqgP^MeqID`-2?>^)rP<&Itm`!$JjCG1/MZ<bBSScMe;N[^
A@s6,0cqBCcqgJA-?_gBt2hS"(7jXe5QR;E55uc%Idu1VU`14#j;rS=fiiu-nkfW"CD6KJBd'k2IJg
%kQbWCVVK%oR1&a_00gIj6Z<s(FnuKu7QG=TDM--JNGUX<jlY?o)bNR7g<I77;BS6]N/2fO+PK4ddl
3Sdhc'i2dg!*R&"Hq.,2oo.NUmr+%`FJhc00<SZ<KX"4,sfP!?_UXLn#AKEfPdoOb5';"fRsVcuiYi
baCIn`9&TlBVfbY:=&_r?QnV]Q;LY(oE-KK4",jJSAD+u(#FJjTfS#Xk?o=8ejHsm\.K<[a#*:_Yu>
hkNci,Ig4;="-at<AaFi9A4*F+&["lR7*t2J(\.:4or1G(G,BsKTi=S#*-eL,Ei2!_&%ka>6Q"OuB*
mN_k37I&a;N-V-KHJZ!DGZDZ!<K8l0/Q&K!so"^f@j,,$MWa*hP2-@%sHkVMkT\UTC?oL164#-',X&
B%74IM(BdA(Tg!Ljk$T9'+W.^"r;&T,!'Q:5)=S`4K_[&.#9lI<*s^bR-:EQt&FsIqeK5?r+Rm^2+B
9nC7C\0R1Eus_F!<k!`CBn7gpSQtK`glU,Z-3KV$_<q16<1%5TNB"FUHG+j\F/r`,_7i[,IYjZ@Wu/
<f.VQYsIoi)q:PE`XYl[HGLYf$R#X7Lld;]D+R:_/>4E2J-\]^LiQG^$42eR=$Y>gCg%remX[b;0Lp
l?>Q\DU>"HoS\MHbUbbA`8MsLT8=Wt6'2qT)[cpNbE%oG@cL5;#?+@6fs.)HuKck_9/?C]\g7Hr%d,
R"a9<lQD*E_-<;)9"nnm8dJ>djQd3\;?rt-k].7V%?.N;'`*7?VqUM%4o@DZfiB$M-GWPWfh"^%D>:
Br1[+:+bii?U(l/B,`![VK]B]L3mpM)M'DVfiFnA3&[;.MUN+8(,MXZ,aAHkl*5<(/i<=p'*8aV5e4
.L+bn6lq&s@dlMOR06W$5A7QmCVndRhkX#:Vc98!S1]DA#@[8L'':M9#<:2GfQa>`[7L-?2PGoH!Cq
7uBn3;)ikIrO<^>UI6;eoas>r,6HO=^!T+):HZia1*N<t?Q.-bqM?7]bC(-([$7"W98#p@-1fff$F>
m$j,iS&46.mq-s#p%$IjVF+pmN@)7g$[QKf$7nfr,<\QgI[Vas^V?4nHJln?&`HZc:pP:*&HYX+M8O
uATkX<(p3FhWkq*64LgR7)SG'.QDH1N>M/Um5U,at%lj%lHA8e-GRr#&g5T+sAin7PC0;PT(u*P>ZC
,351g_S/fjol3t[(/mOu&TUb44EuI<ja^\bq2,KjDA9MF.2!4&e)!,C5Qs\B2-Kn#[W$ed(>h%5;Tl
%_6oK`ltH(Q(>M;1^Kc9L\VYf%^je6"J&AVi0/`kBHd4I^u/Oe9pS82Ctt&ZjZ?Wdt'V7#;$Y<>%P^
8gn*,/4J4p()6r")6KD7-I=.\b@SfKk*_=2B->DNLp3SLc_-Me)IZ8HTU@L4jeYon$\Jm@$u;Q9[Ip
C"(Po"QdVNaYWQPI`r`#Pb'BBd'.B3UbWT'5>Wag4qLZ'fgTXU*:73bg0$EO]><CP+C(TdH?ZAM\n!
%g+Lk13>?@mR55%4e/rXGkjT@oc0\&/mHAe^X!el@Nc.XBR-/7M`V?RO#4FQ)rO'/pNZ'I[@_\?D!1
7'JHkk`(V$u1K^]ZQ,*[9f#Aob)k1Dac'HJYm\S,)RZ-KBjU6tM1\<QK=OtK^436c:`NRT9W^mrPnl
\F3=ur-!"WN8`dCPWC.U-@2JTemU8^s24/$*K>98,hf]9^!4%!1]jWCsp$[b><HJsT3\:ru@WaYtL^
94MZ4Z<pcl;?efU(TQ0jWbQAg9Z;]>)4/3NR(:@Jeh)^"[e(EUlslU0/g*#aV:8&&+`hD=$"U3A75c
p'g:3SW-^+krXs!PCOp"9rR@VR'l)U6:YA.ZR]:!Vt$p_"M`A=&2d*uC2N+hoBOEEA\)u9>A8i*Xc2
U]RYA<t_UAlR6:;(-%U&8WWrlsIBqIfV5(#0mVo9IONri!(a:)IP+qVaF"@1s13G:WhfN3EQ^=RNa;
!=t+;[2B@iE9:H4SKrp7MjqVQ3e@K'KCkq[;9XQMq)A+c7'[9tt:*sQsJ=s]:@ZLnm_1jH%5Z-'']2
]<hDd"VEp<omk5S+%61REA<1j7?0a;V*p5*Mn@$TSt_2(7Q#C(mpU'fA4Q3ADlDe<li6@t%+_))>Dt
l"i@+'6WGlg8-jX5ZbR./5orncE]@@A7d6bR2=+[^,8n+f6!n^lC$01NaXU!3Aa1gpEH1p"_f/VPdN
?7kPC()ap`_bchTHH8fCf9T@T2NA2=Ul4lqDW.lG'sSB1nSQG:f"#[Eu/!IYH3570phBa&:Ecn]9S9
b?5?pDMU_>4ZfOC+4%G5JO&FH=?W4J-%G-)UT+p!iTd)XDkUFNWqcSVl0r:'k*>q1s"q1->,sZ@kd;
&L/==.6DIUW6_RY)QAl'52E<:S`8"iY1in,K5UO(:'iVG>*qQB$d*X9t^Qn&:AE@Q^C,Ikn6s$8OCm
ealP;1IP\Z\aG'I@<g1mK(4h'ps#VbTmYGAW9'[96Zi_5R,aSq7E=.F5Y0barG<FC/a(C<eI4
xbtoa End N 7483 1d3b E 33 S d85f5 R 1fce3640